最全MySQL8.0实战教程 16 MySQL的触发器 16.2 触发器的操作【2 NEW和OLD】 | 您所在的位置:网站首页 › mysql触发器new old用法详解 › 最全MySQL8.0实战教程 16 MySQL的触发器 16.2 触发器的操作【2 NEW和OLD】 |
最全MySQL8.0实战教程
文章目录
最全MySQL8.0实战教程16 MySQL的触发器16.2 触发器的操作【2 NEW和OLD】16.2.1 格式16.2.2 操作
【黑马程序员MySQL知识精讲+mysql实战案例_零基础mysql数据库入门到高级全套教程】 16 MySQL的触发器 16.2 触发器的操作【2 NEW和OLD】 16.2.1 格式MySQL 中定义了 NEW 和 OLD,用来表示触发器的所在表中,触发了触发器的那一行数据,来引用触发器中发生变化的记录内容,具体地: 触发器类型触发器类型NEW 和 OLD的使用INSERT 型触发器NEW 表示将要或者已经新增的数据 【新增只有新的,没有旧的】UPDATE 型触发器OLD 表示修改之前的数据 , NEW 表示将要或已经修改后的数据DELETE 型触发器OLD 表示将要或者已经删除的数据使用方法: NEW.columnName (columnName为相应数据表某一列名)在我们之前的那个案例中,就是说每次新增或者修改数据时,记录的日志不是死的,而是能够显示我们活的数据信息。 16.2.2 操作【insert 类型的触发器】 create trigger trigger_test3 after insert on user for each row insert into user_logs values(NULL,now(),concat('有新用户添加,信息为:',NEW.uid,NEW.username,NEW.password)); -- 测试 insert into user values(4,'赵六','123456');查看两个表 【update 类型的触发器 - OLD修改之前】 create trigger trigger_test4 after update on user for each row insert into user_logs values(NULL,now(),concat('有用户信息进行了修改,信息修改之前为:',OLD.uid,OLD.username,OLD.password)); update user set password = '999999' where uid = 4;直接看表 【update 类型的触发器 - NEW修改之后】 create trigger trigger_test5 after update on user for each row insert into user_logs values(NULL,now(),concat('有用户信息进行了修改,信息修改之后为:',NEW.uid,NEW.username,NEW.password)); update user set password = '5201314' where uid = 1;直接看两个表 【其实】不止是SQL 语句操作,手动直接修改表中数据时,只要满足了触发器的触发条件,都会让我们写的触发器触发,从而进行操作。 【delete 类型的触发器,只有OLD没有NEW,即只有之前,没有之后】 create trigger trigger_test6 after delete on user for each row insert into user_logs values(NULL,now(),concat('有用户信息被删除了,删除用户信息为:',OLD.uid,OLD.username,OLD.password)); delete from user where uid = 1;直接查看两表 就是这样。 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |